package com.lwl.blue.seven.dto;

import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * 合同列表显示VO
 * @author system
 * @since 2025-09-17
 */
@Data
public class Contract7ListVO {

    /**
     * 采购合同号内码(主键)
     */
    private Long contractId;

    /**
     * 合同号
     */
    private String contractNumber;

    /**
     * 合同名称（用户手动输入）
     */
    private String contractName;

    /**
     * 供应商名称
     */
    private String supplierName;

    /**
     * 合同总额
     */
    private BigDecimal totalAmount;  // 原Double改为BigDecimal，匹配SQL的decimal(18,6)

    /**
     * 创建人名称
     */
    private String createUserName;

    /**
     * 创建时间
     */
    private Date createTime;  // 原Date改为LocalDateTime，匹配SQL的datetime

    /**
     * 合同生效日期
     */
    private Date effectiveDate;  // 原Date改为LocalDate，匹配SQL的date

    /**
     * 合同失效日期
     */
    private Date expiryDate;  // 原Date改为LocalDate，匹配SQL的date

    /**
     * 状态：10准备, 11驳回, 15修改, 30待审, 70执行, 80完结
     */
    private Integer status;

    /**
     * 状态名称
     */
    private String statusName;

    /**
     * 创建人ID（系统自动记录）
     */
    private Long createUserId;

    /**
     * 供应商ID
     */
    private Integer supplierId;

    /**
     * 交易类型
     */
    private String transactionType;  // 补充SQL中的核心字段，列表可能需要展示

    /**
     * 是否可编辑（当前用户是创建人且状态为草稿或打回）
     */
    private Boolean canEdit;

    /**
     * 是否可删除（当前用户是创建人且状态为草稿）
     */
    private Boolean canDelete;

    /**
     * 是否可提交审批（当前用户是创建人且状态为草稿）
     */
    private Boolean canSubmit;

    /**
     * 是否可审核（当前用户是审核人且状态为待审）
     */
    private Boolean canAudit;
}